package nl.uva.science.pico.picolanguage.types;

abstract public class PROGRAM extends nl.uva.science.pico.picolanguage.AbstractType {
  public PROGRAM(nl.uva.science.pico.picolanguage.Factory factory, aterm.ATermList annos, aterm.AFun fun, aterm.ATerm[] args) {
     super(factory, annos, fun, args);
  }

  public boolean isEqual(PROGRAM peer) {
    return super.isEqual(peer);
  }

  public boolean isSortPROGRAM()  {
    return true;
  }

  public boolean isMain() {
    return false;
  }

  public boolean hasDeclarations() {
    return false;
  }

  public boolean hasBody() {
    return false;
  }

  public nl.uva.science.pico.picolanguage.types.DECLS getDeclarations() {
     throw new UnsupportedOperationException("This PROGRAM has no Declarations");
  }

  public PROGRAM setDeclarations(nl.uva.science.pico.picolanguage.types.DECLS _declarations) {
     throw new IllegalArgumentException("Illegal argument: " + _declarations);
  }

  public nl.uva.science.pico.picolanguage.types.STATEMENTS getBody() {
     throw new UnsupportedOperationException("This PROGRAM has no Body");
  }

  public PROGRAM setBody(nl.uva.science.pico.picolanguage.types.STATEMENTS _body) {
     throw new IllegalArgumentException("Illegal argument: " + _body);
  }

}

